import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts, TitleOpts

# 拿到数据字符串
f = open('E:/PythonBasicKnowledge/09 可视化（echarts）图表展示案例/地图/疫情.txt', 'r', encoding='UTF-8')
data = f.read()
f.close()

# 转换为字典
data = json.loads(data)

# 获取到各个省份数据
data = data['areaTree'][0]['children']

# 循环省份数据，转换为【地图】组件需要的数据格式
map_data = []
i = 0
for item in data:
    map_data.append((item['name'] + '省', item['total']['confirm']))
    i += 1

print(map_data)

# 把数据放入地图中
my_map = Map()
my_map.add('省市疫情确诊人数', map_data, 'china')
my_map.set_global_opts(title_opts=TitleOpts(title='省市疫情确诊人数', pos_left='center', pos_bottom='1%'),
                       visualmap_opts=VisualMapOpts(
                           is_show=True,
                           is_piecewise=True,
                           pieces=[
                               {'min': 0, 'max': 0, 'label': '无确诊', 'color': '#65e731'},
                               {'min': 1, 'max': 9, 'label': '1-9', 'color': 'red'},
                               {'min': 10, 'max': 99, 'label': '10-99', 'color': 'orange'},
                               {'min': 100, 'max': 299, 'label': '100-299', 'color': 'yellow'},
                               {'min': 300, 'max': 599, 'label': '300-599', 'color': 'green'},
                               {'min': 600, 'max': 1000, 'label': '600-1000', 'color': 'blue'},
                           ]
                       ))
my_map.render('全国疫情地图.html')
